Overview
The information contained in this specification provides implementation
guidelines and defines additional capabilities beyond the binary
standards provided by the UNIX System V Application Binary Interface
(the generic ABI or gABI) and the MIPS Processor Specific ABI (psABI),
which are required for the development and distribution of shrinkwrap
software.
The vendors contributing to the development of this Conformance Guide
include:
These vendors are known collectively as the MIPS ABI group. UNIX
System Laboratories (now UNIX Systems Group, Novell, Inc.) has
supported the effort through review and comment on the specifications
as they were developed.
ISVs contributing to the development of this Conformance Guide include
Oracle Corporation and SAS Institute Incorporated.
Audience and Purpose
This specification is intended to guide application writers in
developing software that will run portably across all MIPS® RISC
processor-based systems that are ABI compliant. It also is a
specification for implementors of compliant operating systems. This
document is intended to define areas beyond the current ABIs as well as
address any outstanding ambiguities. Some information may not be
relevant to all audiences.
It is intended that application writers and ISVs use the gABI and the
psABI in conjunction with this specification as a complete and rich
environment for portable application development on the MIPS ABI
reference processor.
Relationship to OCMP
Several of the member firms of the MIPS ABI group are also active in
the Open Computing environment for MIPS Platforms (OCMP) efforts in
Japan. The OCMP-ABI is based on the MIPS ABI version 1.0.1 with
extensions in several areas:
- Internationalization and localization, especially in Japanese language support
- CD-ROM access libraries
- Specification of X11R5 and OSF/Motif 1.2.
The intent of both the MIPS ABI group and the OCMP members is to keep
their respective specifications aligned. Version 1.1 of this document
introduced X11R5 and OSF/Motif 1.2 as required interfaces. The X11R5
interface is supported by Dynamic Shared Object libraries, while
OSF/Motif 1.2 is supported by a static archive, libXm.a
, present in the
ABI build environment. Internationalization and CD-ROM access
libraries are possible future additions to the MIPS ABI, but are not
yet formally part of it. Prentice Hall
has the programmer's reference set availble for Motif 1.2.
Organization
This specification is organized similarly to other ABIs for ease of use
with the companion standards. In addition to the standard ABI, this
specification covers conformance testing issues, implementation
guidelines, and future directions.
This document is organized as follows:
- Chapter 1 provides overview information, including a summary of
additions to the ABI and an explanation of conformance issues.
- Chapter 2 describes software installation and packaging issues.
- Chapter 3 presents low level system information.
- Chapter 4 describes object files.
- Chapter 5 describes program loading and dynamic linking.
- Chapter 6 presents library information.
- Chapter 7 describes formats and protocols.
- Chapter 8 describes system commands.
- Chapter 9 describes execution environments.
- Chapter 10 describes windowing and terminal interfaces.
- Chapter 11 discusses development environments for an ABI system.
- Appendix A discusses future directions.
Related Documentation
The following books should be used for reference.
- System V Application Binary Unterface, Revised First Edition,
Prentice-Hall, ISBN 0-13-880410-9.
This is the defining document for the generic ABI.
- System V Application Binary Interface, MIPS Processor Supplement,
Prentice-Hall, ISBN 0-13-880170-3.
This is the defining document for the psABI for the MIPS Processor family.
Single copies of the generic ABI and processor-specific ABI
may be obtained from Simon and Schuster by calling 800-947-7700.
- System V Interface Definition The SVID specifies the base
operating system envrionment for the development of compatible
applications, including the API (Application Programming Interface).
It was originally published in four volumes, two additional volumes
were published later. The current issues of these volumes are:
- Volume I, ISBN 0-201-56652-4
- Volume II, ISBN 0-201-56653-2
- Volume III, ISBN 0-201-56654-0
- Volume IV, ISBN 0-201-56655-9
- Volume V, ISBN 0-201-56656-7
- Volume VI, ISBN 0-201-52480-6
- Set, Volumes I-VI, ISBN 0-201-58822-6
- MIPS RISC Architecture, ISBN 0-13-584749-4.
- X Window System: the Complete Reference to Xlib, X Protocol, ICCCM,
XLFD,
Digital Press ISBN 1-55558-088-2.
- OSF/Motif Programmer's Reference, Revision 1.2,
Prentice-Hall, ISBN 0-13-643115-1.
- Portable Operating System Interface (POSIX) IEEE Std. 1003.1b-1993,
IEEE, ISBN 1-55937-375-X.
This volume is more formally titled IEEE Standard for Information Technology - Portable Operating System Interface (POSIX) - Part 1: Application program Interface (API) - Ammendment 1: Realtime Extensions [C Language].
It provides the base IEEE Std
1003.1-1990 specification, as well as the real-time extensions that
were the work of the P1003.4 committee.
Terminology
The following terms are used throughout this document.
ABI A specification conforming to the System V
Application Binary Interface. The System V ABI for
a particular system is composed of the generic ABI, the
processor-specific supplement for the processor
used in the system, and the processor-specific
conformance guide (this volume) used in the
system.
ABI-conforming A program written to include only the system routines,
program commands, and other resources included in the ABI; a
program compiled into an executable file that has
the formats and characteristics specified for such
files in the ABI; a program whose complies with the
rules given in the ABI.
ABI-conforming A computer system that provides the
system binary system interface for application programs
described in the System V ABI.
ABI-nonconforming A program written to include system routines, commands,
program resources not included in the ABI; a program compiled
into a format different from that specified in the
ABI; a program whose behavior does not comply with the
rules given in the ABI.
Generic ABI The processor-independent portions of the System V
Application Binary Interface. Also abbreviated to
"gABI".
Processor-specific Those portions of the System V ABI specific to a
AbI or Supplement particular processor architecture. Also abbreviated
to "psABI".
Conformance Guide Implementation guidelines and additional capabilities
(this document) beyond the gABI and psABI. Also informally known
as the "Black Book".
Reference Platform The combination of hardware and software such that
ABI-conforming applications which are generated on and
execute correctly on the reference platform are
guaranteed to execute correctly on all ABI-conforming
systems. The reference platform hardware for the MIPS
ABI group consists of the Silicon Graphics family of
workstations and servers, including:
o Personal IRIS Workstations
o INDY Workstation
o INDIGO and INDIGO R4000 Workstations
o CRIMSON Systems
o Power Series Servers
o CHALLENGE Servers
o ONYX Workstations
The reference platform software corresponding to the MIPS
ABI Conformance Guide Version 1.1 consists of a reference
operating system (IRIX 5.2) and compiler suite (IRIS
Development Option 3.18). A future revision of this
software will be the Reference Platform for Version 1.2.
Note that this version of the ABI is based on the R3000
instruction set, although compatible applications may be
built and executed on all supported MIPS processors.
Undefined behavior Behavior that may vary from instance to instance or may
change at some time in the future. Some undesirable
programming practices are marked in the ABI as yielding
undefined behavior.
Unspecified A property of an entity that is not explicitly included
property or referenced in the ABI and may change at some time in
the future. In general, it is not good practice to make
a program depend on an unspecified property.
Conformance
The collection of specifications referenced in this volume,
including the gABI, the psABI, and this specification, as
well as the X Window System and OSF/Motif volumes, define
the standard interfaces for compiled application programs on
the MIPS architecture.
Diffmarkings have been inserted in this document to indicate the
evolution of the Conformance Guide.
A "|" character in the right-hand margin indicates a change
in the ABI made when Version 1.2 of the Conformance Guide
was published. Deletions are marked with a "*" character.
Note that there were considerable editorial changes (to
fonts, layout, table headings, etc.) between these two
revisions, the change bars are intended to highlight
substantive changes only. Some entirely new sections are
not diffmarked, and are so noted. Tables of symbols are
also not diffmarked, instead a "*" is used to indicate new
symbols.
Differences between Version 1.0 and Version 1.1 of the
Conformance Guide are not noted.
General Guidelines for Porting to MIPS ABI Platforms
A document entitled Constructing MIPS ABI Compliant Binaries
on the IRIX 5.x Operating System is available. This porting guide
includes information on how to port applications to the
reference platform, as well as a summary of common problems
encountered when porting applications. This guide is
available from the Silicon Graphics Developer Program or any
of the other companies participating in the MIPS ABI group.
An informal list of "Frequently Asked Questions" is also
available.
Working with the MIPS ABI Group
A reference paper describing the MIPS ABI group is
available. It includes general information about the group
as well as a list of marketing and technical representatives
from each company. Application developers who wish to
develop MIPS ABI compliant applications should contact the
Applications manager at any one of the MIPS ABI companies to
get detailed information on developer and marketing
programs.
Platform Compliance Testing
All MIPS ABI conforming systems are measured for compliance
against the MIPS ABI PVTS (Platform Verification Test
Suite). This test suite is maintained and enhanced by
Silicon Graphics under the supervision of the MIPS ABI
Technical Committee. (Significant prior work on PVTS was
done by Sony Microsystems, and by UniSoft Group Ltd.)
Compliance testing ensures that the interfaces provided by
the vendors manifest the specified semantics and syntax.
The PVTS also verifies features contained in the ABI
documents that may not have programmatic interfaces but may
still be needed to satisfy binary compatibility. The group
also performs multiple platform testing of selected
applications to ensure that "real world" compatibility is
achieved.
The Application Compliance Testing Tool (ACT)
The reference platform operating system provides an
Application Compliance Testing tool to check the ABI
compliance of a binary program. The tool is provided as an
aid in identifying problem areas in producing a compliant
binary; passing the tests provided by the tool does not
ensure complete conformance.
check_abi_compliance Determines whether a binary references anything
which is not defined by the ABI as well as making
certain that it supplies variables which are
required by the ABI.
check_abi_interface Determines if a shared object supplies all public
routines which are required of it by the ABI.
It will also list public routines which the
shared object supplies which are not part of
the ABI.
check_for_syscalls Finds any system calls in a binary (i.e., invocations
of the procedure syscall). Binaries which contain
system calls are inherently not ABI compliant.
Go to Chapter 2
Go to Beginning
Back to the Table of Contents
Back to the MIPS ABI Home Page
Maintained by webmaster@mipsabi.org
last modified on November 21, 1995
Copyright © 1995, MIPS ABI Group, Incorporated.